This application pertains to synchronizing a clock to values disposed in a digital data stream. It is particularly applicable to generating a local clock that corresponds to a program clock reference embedded in the data stream. However, it will be appreciated that the subject application is applicable to any system in which a local clock is to be synchronized in accordance with received input values.
Several standards have been propagated relative to compression, transmission, and decompression of encoded video data, encoded audio data, or combinations thereof. A current specification for transmission is promulgated by the International Organization for Standards (“ISO”), in the published MPEG-4 specifications. MPEG-4 is an updated and expanded transmission standard that follows the earlier MPEG-2 standard. Specifications, such as MPEG-4, allow for uniform encoding, transmission and decoding of digital information. When digitally encoded information is retrieved, a synchronous, digital device is used to decode the information and display a real time audio or video output, such as, via a speaker and video display.
Moving images, such as with video feeds, as well as audio, must be delivered in real time and in an ordered presentation. Failure to do this accurately will result in a loss of image integrity, and a degradation of an illusion of fluid motion or movement, the latter of which is sometimes referred to as “jitter.” There are problems that are inherent in any data transmission, including delays associated with coding, multiplexing of signals, and transmission or propagation delays. It is important that data be received and buffered, and ultimately decoded then displayed in a manner sufficiently synchronized with the properties of the original data so as to address any such concerns, and provide a smooth, uninterrupted and jitter-free playback. Such playback is also accomplished by use of timing generated by a local data clock, which clock will generally not be exactly the same as that used in the original encoding and transmission of a content stream.
It is important that timing of decoding and display of such audio visual information be synchronized properly with an incoming MPEG-4 specifications include IEC13818-1, which specification details incorporation of a program clock reference (“PCR”) data field into a data stream. This data is used on a receiving end of a stream to facilitate time recovery and pulse synchronization. Any action upon a data stream necessitates an updating of a PCR value. Such changes in a data stream may be attributed to variations in data rate, change in data sequence, addition of multiple program transport streams, and the like.
Failure to properly correct a local-generated clock signal to be synchronized with that found in an incoming data stream will result in loss of picture, loss of audio, jitter or offset associated with a subsequent decoding and display thereof.
Currently, systems exist which allow for capturing of a PCR value, which value is used to determine whether a local clock signal is too fast or too slow. Appropriate adjustment of the local clock signal in accordance with this PCR value is then made. While conventional systems are effective, they typically take advantage of hardware, such as pulse width modulation generators, low pass filters and voltage controlled crystal oscillators, which devices work in tandem to provide adjustment to a local clock signal in accordance with a PCR value. While functional, inclusion of a voltage controlled crystal oscillator and low pass filtering typically requires that components be used which are not easily integrated into an integrated circuit die. Thus, additional expense, size, components, interconnections and assembly time are required to generate a circuit capable of generating an acceptable, synchronized clock value.
It will be advantageous to have a system and method for adjusting a local clock value in accordance with an incoming PCR value, which system could be effective in and integrated onto an LSI device, together with other hardware and software associated with decoding of an incoming stream.